/*
    2020年05月31日 11:16:17
    例3-2:编写一个函数，求后缀式的数值，其中后缀式存入一个字符数组exp中，exp中最后一个字符为
    ‘\0’，作为结束符并且假设后缀式中的数字都只有一位，本题中出现的除法运算，皆为整数除法
*/
#include <iostream>
#define MAXSIZE 10
using namespace std;

int OP(int a, char Op, int b)
{
    if (Op == '+')
        return a + b;
    if (Op == '-')
        return a - b;
    if (Op == '*')
        return a * b;
    if (Op == '/')
    {
        if (b == 0)
        {
            cout << "ERROR" << endl;
            return 0;
        }
        else
            return a / b;
    }
}

int com(char exp[])
{
    int i, a, b, c;
    int stack[MAXSIZE];
    int top = -1;

    char op;
    for (i = 0; exp[i] != '\0'; ++i)
    {
        if (exp[i] >= '0' && exp[i] <= '9')
            stack[++top] = exp[i] - '0';
        else
        {
            op = exp[i];
            b = stack[top--];
            a = stack[top--];
            c = OP(a, op, b);
            stack[++top] = c;
        }
    }
    return stack[top];
}